Network virtualization technologies such as Network Virtualization using Generic Routing Encapsulation (NVGRE) or Virtual Local Area Network (ULAN) enable service providers to create virtual, cloud based networks for their customers or “tenants” that are independent of the physical network and underlying hardware for their customers. Such virtual networks may be created on-demand without changes to the underlying physical network. Virtual networks are therefore relatively easy to set-up, manage and expand and may have a cost advantage over comparable physical networks.
Traditionally, a dedicated virtual machine instance is configured by a service provider for each tenant and/or virtual network to provide the tenant with network services (such as gateways, firewalls, load balancers, DHCP servers, and so forth.). Traditional networking stacks are unable to handle overlapping constructs such as internet protocol (IP) addresses from multiple virtual networks and therefore the dedicated virtual machine cannot serve multiple virtual networks. Additionally, traditional networking stacks lack functionality to isolate one virtual network's traffic from another. Thus, set-up and management of a virtual machine for network services is duplicated for each tenant. As more and more tenants migrate their workloads to a service provider's virtualization service, the capital expenditure and operating costs associated with providing dedicated virtual machines associated with each virtual network increases accordingly. Thus, existing techniques for handling multiple tenant workloads in a virtual networking environment may be inefficient and/or inadequate in some instances.